package demo05;

/*
 * 在多态的代码中，成员方法的访问规则是：
 * 看new的是谁（对象是谁），就优先用谁，没有则向上找。
 * 口诀：编译看左边，运行看右边。
 * 
 * 对比：
 * 成员变量：编译看左边（引用类型），运行也看左边（引用类型）
 * 成员方法：编译看左边（引用类型），运行看右边（创建对象类型）
 */
public class Demo02MultiMethod {
    public static void main(String[] args) {
        Fu obj = new Zi(); // 多态

        obj.method(); // 父子类都有，优先用子类
        obj.methodFu(); // 子类没有，父类有，向上找到父类

        // 编译看左边，左边是Fu类型，Fu当中没有methodZi方法，所以编译报错
        // obj.methodZi(); // 错误写法！
    }
}
